<?php
/**
 * Article
 *
 * Класс для обработки раздела Article
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.ru>
 * @version 1.0
 */
class Article extends ActiveRecord {
	public $tableName = 'article';
	public $pkName = 'ID_article';

	protected $essenceType = 32;

	protected $arrWysiwyg = array('text');
	protected $arrSettings = array('created_at' => true,  // в БД храним вмеря создания
																'updated_at' => true, 	// в БД храним вмеря редактирования
																'author' => true);			// в БД храним автора (ID_user)

	protected $validatesLengthOf = array('text' => array('minimum' => 3, 'message' => 'Для написания текста используйте более 3 символов'),
																			 'article_name' => array('minimum' => 3, 'maximum' => 255, 'message' => 'Название статьи должно быть от 3 до 255 символов'),
																			 'title' => array('minimum' => 3, 'maximum' => 25, 'message' => 'title должен быть от 1 до 25 символов'),
																			 //'keywords' => array('minimum' => 3, 'maximum' => 255, 'message' => 'Keywords должно быть от 3 до 255 символов'),
																			 //'description' => array('minimum' => 3, 'maximum' => 255, 'message' => 'Description должно быть от 3 до 255 символов'),
																			 'url' => array('minimum' => 3, 'message' => 'для написания URL используйте более 3 символов'));

  protected $validatesFormatOf = array('url' => array('message' => 'Некорректно введен URL', 'with' => '|^[\-_A-Za-z0-9]+$|'));	
  protected $validatesUniquenessOf = array('url' => array('message' => 'Этот URL уже используется'));

  public function __construct($arrInitialFields = null) {
		parent::__construct($arrInitialFields);
  }

  /**
   * Изменение полей перед сохранением
   *
   */
  public function beforeSave() {
    $text = $this->getField('text');
    $shortText = Service_Function::utf8_substr(strip_tags($text), 0, 300);
    $this->setField('text_preview', $shortText);
    
    if (isset($this->tableFields['in_menu'])) $this->tableFields['in_menu'] = 1;
    else $this->tableFields['in_menu'] = 0;     
  }

  /**
   * Настройка проверок перед валидацией
   * Удаляем <br> из вайсвига, если больше ничего нет
   *
   */
  public function beforeValidation() {
    //$this->tableFields['text'];
    if (trim($this->getField('text')) == '<br>') $this->setField('text', '');
  }
}
?>